<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Assimp: aiString Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Assimp
   &#160;<span id="projectnumber">v3.0 (July 2012)</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="structai_string.html#pub-methods">Public Member Functions</a> &#124;
<a href="structai_string.html#pub-attribs">Public Attributes</a>  </div>
  <div class="headertitle">
<div class="title">aiString Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Represents an UTF-8 string, zero byte terminated.  
 <a href="structai_string.html#details">More...</a></p>

<p><a href="structai_string-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a17c320c3e6f54fd65324698d4964d9c4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_string.html#a17c320c3e6f54fd65324698d4964d9c4">aiString</a> ()</td></tr>
<tr class="memdesc:a17c320c3e6f54fd65324698d4964d9c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor, the string is set to have zero length.  <a href="structai_string.html#a17c320c3e6f54fd65324698d4964d9c4"></a><br/></td></tr>
<tr class="memitem:a7b202e9e72e65099a6df0de7bc879163"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_string.html#a7b202e9e72e65099a6df0de7bc879163">aiString</a> (const <a class="el" href="structai_string.html">aiString</a> &amp;rOther)</td></tr>
<tr class="memdesc:a7b202e9e72e65099a6df0de7bc879163"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor.  <a href="structai_string.html#a7b202e9e72e65099a6df0de7bc879163"></a><br/></td></tr>
<tr class="memitem:ad977e1aea2f681e47e45e8a81c63c4a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_string.html#ad977e1aea2f681e47e45e8a81c63c4a2">aiString</a> (const std::string &amp;pString)</td></tr>
<tr class="memdesc:ad977e1aea2f681e47e45e8a81c63c4a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from std::string.  <a href="structai_string.html#ad977e1aea2f681e47e45e8a81c63c4a2"></a><br/></td></tr>
<tr class="memitem:a9ed045854a503b2e414ee7c756e39a6e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_string.html#a9ed045854a503b2e414ee7c756e39a6e">Append</a> (const char *app)</td></tr>
<tr class="memdesc:a9ed045854a503b2e414ee7c756e39a6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append a string to the string.  <a href="structai_string.html#a9ed045854a503b2e414ee7c756e39a6e"></a><br/></td></tr>
<tr class="memitem:a9e30a1c61b7cb32eaeb470c537d36299"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_string.html#a9e30a1c61b7cb32eaeb470c537d36299">C_Str</a> () const </td></tr>
<tr class="memdesc:a9e30a1c61b7cb32eaeb470c537d36299"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to the underlying zero-terminated array of characters.  <a href="structai_string.html#a9e30a1c61b7cb32eaeb470c537d36299"></a><br/></td></tr>
<tr class="memitem:aa51cd987f420804340c75fd929b25b4d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_string.html#aa51cd987f420804340c75fd929b25b4d">Clear</a> ()</td></tr>
<tr class="memdesc:aa51cd987f420804340c75fd929b25b4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the string - reset its length to zero.  <a href="structai_string.html#aa51cd987f420804340c75fd929b25b4d"></a><br/></td></tr>
<tr class="memitem:a93f36368135ea2ca3e9e1b6eb5bb4bbe"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_string.html#a93f36368135ea2ca3e9e1b6eb5bb4bbe">operator!=</a> (const <a class="el" href="structai_string.html">aiString</a> &amp;other) const </td></tr>
<tr class="memdesc:a93f36368135ea2ca3e9e1b6eb5bb4bbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse comparison operator.  <a href="structai_string.html#a93f36368135ea2ca3e9e1b6eb5bb4bbe"></a><br/></td></tr>
<tr class="memitem:a1da831142e75271700267742677be0ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structai_string.html">aiString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_string.html#a1da831142e75271700267742677be0ae">operator=</a> (const char *sz)</td></tr>
<tr class="memdesc:a1da831142e75271700267742677be0ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign a const char* to the string.  <a href="structai_string.html#a1da831142e75271700267742677be0ae"></a><br/></td></tr>
<tr class="memitem:a0aca35abc50bf79952cd729d35d9dd4d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structai_string.html">aiString</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_string.html#a0aca35abc50bf79952cd729d35d9dd4d">operator=</a> (const std::string &amp;pString)</td></tr>
<tr class="memdesc:a0aca35abc50bf79952cd729d35d9dd4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign a cstd::string to the string.  <a href="structai_string.html#a0aca35abc50bf79952cd729d35d9dd4d"></a><br/></td></tr>
<tr class="memitem:a26618a99f72788873d07b4dfa2b82dba"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_string.html#a26618a99f72788873d07b4dfa2b82dba">operator==</a> (const <a class="el" href="structai_string.html">aiString</a> &amp;other) const </td></tr>
<tr class="memdesc:a26618a99f72788873d07b4dfa2b82dba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Comparison operator.  <a href="structai_string.html#a26618a99f72788873d07b4dfa2b82dba"></a><br/></td></tr>
<tr class="memitem:aea4f745fc87cc28175dbc3b7e33411f0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_string.html#aea4f745fc87cc28175dbc3b7e33411f0">Set</a> (const std::string &amp;pString)</td></tr>
<tr class="memdesc:aea4f745fc87cc28175dbc3b7e33411f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a std::string to the <a class="el" href="structai_string.html" title="Represents an UTF-8 string, zero byte terminated.">aiString</a>.  <a href="structai_string.html#aea4f745fc87cc28175dbc3b7e33411f0"></a><br/></td></tr>
<tr class="memitem:a3149bea05889488dd2664b50be364a05"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_string.html#a3149bea05889488dd2664b50be364a05">Set</a> (const char *sz)</td></tr>
<tr class="memdesc:a3149bea05889488dd2664b50be364a05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a const char* to the <a class="el" href="structai_string.html" title="Represents an UTF-8 string, zero byte terminated.">aiString</a>.  <a href="structai_string.html#a3149bea05889488dd2664b50be364a05"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:aa90b1da7d347a3dcca0a95061e6ea41d"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_string.html#aa90b1da7d347a3dcca0a95061e6ea41d">data</a> [<a class="el" href="types_8h.html#a62cd28a234de9b546f2e22997e92f3de">MAXLEN</a>]</td></tr>
<tr class="memdesc:aa90b1da7d347a3dcca0a95061e6ea41d"><td class="mdescLeft">&#160;</td><td class="mdescRight">String buffer.  <a href="structai_string.html#aa90b1da7d347a3dcca0a95061e6ea41d"></a><br/></td></tr>
<tr class="memitem:a7d77c2031ff0340746aa046f7fbcf313"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_string.html#a7d77c2031ff0340746aa046f7fbcf313">length</a></td></tr>
<tr class="memdesc:a7d77c2031ff0340746aa046f7fbcf313"><td class="mdescLeft">&#160;</td><td class="mdescRight">Binary length of the string excluding the terminal 0.  <a href="structai_string.html#a7d77c2031ff0340746aa046f7fbcf313"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Represents an UTF-8 string, zero byte terminated. </p>
<p>The character set of an <a class="el" href="structai_string.html" title="Represents an UTF-8 string, zero byte terminated.">aiString</a> is explicitly defined to be UTF-8. This Unicode transformation was chosen in the belief that most strings in 3d files are limited to ASCII, thus the character set needed to be strictly ASCII compatible.</p>
<p>Most text file loaders provide proper Unicode input file handling, special unicode characters are correctly transcoded to UTF8 and are kept throughout the libraries' import pipeline.</p>
<p>For most applications, it will be absolutely sufficient to interpret the <a class="el" href="structai_string.html" title="Represents an UTF-8 string, zero byte terminated.">aiString</a> as ASCII data and work with it as one would work with a plain char*. Windows users in need of proper support for i.e asian characters can use the #MultiByteToWideChar(), #WideCharToMultiByte() WinAPI functionality to convert the UTF-8 strings to their working character set (i.e. MBCS, WideChar).</p>
<p>We use this representation instead of std::string to be C-compatible. The (binary) length of such a string is limited to MAXLEN characters (including the the terminating zero). </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a17c320c3e6f54fd65324698d4964d9c4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">aiString::aiString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default constructor, the string is set to have zero length. </p>

</div>
</div>
<a class="anchor" id="a7b202e9e72e65099a6df0de7bc879163"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">aiString::aiString </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structai_string.html">aiString</a> &amp;&#160;</td>
          <td class="paramname"><em>rOther</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copy constructor. </p>

</div>
</div>
<a class="anchor" id="ad977e1aea2f681e47e45e8a81c63c4a2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">aiString::aiString </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>pString</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor from std::string. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a9ed045854a503b2e414ee7c756e39a6e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void aiString::Append </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>app</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Append a string to the string. </p>

</div>
</div>
<a class="anchor" id="a9e30a1c61b7cb32eaeb470c537d36299"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char* aiString::C_Str </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a pointer to the underlying zero-terminated array of characters. </p>

</div>
</div>
<a class="anchor" id="aa51cd987f420804340c75fd929b25b4d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void aiString::Clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clear the string - reset its length to zero. </p>

</div>
</div>
<a class="anchor" id="a93f36368135ea2ca3e9e1b6eb5bb4bbe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool aiString::operator!= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structai_string.html">aiString</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Inverse comparison operator. </p>

</div>
</div>
<a class="anchor" id="a1da831142e75271700267742677be0ae"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structai_string.html">aiString</a>&amp; aiString::operator= </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>sz</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Assign a const char* to the string. </p>

</div>
</div>
<a class="anchor" id="a0aca35abc50bf79952cd729d35d9dd4d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structai_string.html">aiString</a>&amp; aiString::operator= </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>pString</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Assign a cstd::string to the string. </p>

</div>
</div>
<a class="anchor" id="a26618a99f72788873d07b4dfa2b82dba"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool aiString::operator== </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structai_string.html">aiString</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Comparison operator. </p>

</div>
</div>
<a class="anchor" id="aea4f745fc87cc28175dbc3b7e33411f0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void aiString::Set </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>pString</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copy a std::string to the <a class="el" href="structai_string.html" title="Represents an UTF-8 string, zero byte terminated.">aiString</a>. </p>

</div>
</div>
<a class="anchor" id="a3149bea05889488dd2664b50be364a05"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void aiString::Set </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>sz</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copy a const char* to the <a class="el" href="structai_string.html" title="Represents an UTF-8 string, zero byte terminated.">aiString</a>. </p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="aa90b1da7d347a3dcca0a95061e6ea41d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char aiString::data[<a class="el" href="types_8h.html#a62cd28a234de9b546f2e22997e92f3de">MAXLEN</a>]</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>String buffer. </p>
<p>Size limit is MAXLEN </p>

</div>
</div>
<a class="anchor" id="a7d77c2031ff0340746aa046f7fbcf313"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t aiString::length</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Binary length of the string excluding the terminal 0. </p>
<p>This is NOT the logical length of strings containing UTF-8 multibyte sequences! It's the number of bytes from the beginning of the string to its end. </p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="types_8h.html">types.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jul 10 2012 17:55:53 for Assimp by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1.1
</small></address>
</body>
</html>
